home *** CD-ROM | disk | FTP | other *** search
/ Logiciels PC 18 / LOGICIELSPC_18.ISO / Accuses / MAJ / Rtf2Html / Source C / LIB / RTFCHAR.C < prev    next >
C/C++ Source or Header  |  1999-06-27  |  2KB  |  89 lines

  1.  
  2.  
  3. /*
  4.  * %%File: rtfchar.c
  5.  *
  6.  * Chaque nom de fonction definie dans ce fichier est precede
  7.  * des lettres : ch
  8.  *
  9.  * Copyright (c) 1995-1999 Bertrand LE QUELLEC
  10.  *
  11.  * http://perso.wanadoo.fr/blq
  12.  * blq@wanadoo.fr
  13.  */
  14.      
  15.      
  16. #include <stdio.h>
  17.         
  18. #include "rtftype.h"
  19. #include "rtfdecl.h"
  20. #include "rtfreadr.h"
  21. #include "html.h"
  22.  
  23. #define SOURCE_CHAR 1
  24. #include "rtfchar.h"
  25.  
  26.  
  27.  
  28.  
  29. /*
  30.  * %%Function: chHexaToAscii.
  31.  *
  32.  * Renvoie le code ASCII correspondant au code Hexa passe en argument.
  33.  */
  34. int chHexaToAscii(char * hexa)
  35. {
  36.     int ct1 = 0, ct2 = 0, ct3 = 0, c = 0;
  37.     char TabHex[5];
  38.  
  39.  
  40.     if(!hexa)
  41.         return ecNO;
  42.  
  43.     /* Boucle sur la premiere table,
  44.      * jusqu'a la table etendue.
  45.      */
  46.     for (ct1 = 0; ct1 <= 128; ct1 += 128)
  47.     {
  48.         for (ct2 = ct1; ct2 < ct1+32; ct2++)
  49.         {
  50.             for (ct3 = ct2; ct3 < ct2+4*32; ct3 += 32)
  51.             {
  52.                 if (ct3 == 0)
  53.                     c = 48;
  54.                 else if (ct3 <= 31)
  55.                     c = 64;
  56.                 else
  57.                     c = 0;
  58.  
  59.                 sprintf(TabHex, "%x", ct3);
  60.  
  61.                 /* Renvoie le code ASCII. */
  62.                 if(!strcmp(TabHex, hexa))
  63.                     return ct3+c;
  64.             }
  65.         }
  66.     }
  67.  
  68.     return ecNO;
  69. }
  70.  
  71. /* 
  72.  * %%Function: chCharactereRtf.
  73.  *
  74.  * Determine le caractere RTF et le transcrit en caractere TXT
  75.  */
  76. int chCharactereRtf(char * code, int param, bool fParam)
  77. {
  78.     char TabHexa[5];
  79.  
  80.  
  81.     if(fParam == fFalse)
  82.         sprintf(TabHexa, "%c%c", code[1], param);
  83.     else
  84.         sprintf(TabHexa, "%c%d", code[1], param);
  85.  
  86.     return ecPrintChar(chHexaToAscii(TabHexa));
  87. }
  88.  
  89.